package com.example.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

/**
 * 配置类，用于加载和存储加密与解密相关的配置项。
 * 配置项来源于 encryption.properties 文件，通过 spring.config.import 导入。
 */
@Data
@Component
@Configuration
@ConfigurationProperties(prefix = "encryption")  // 指定属性前缀
public class EncryptionConfig {

    /**
     * 加密密钥，用于 AES 加密算法。应为 16 字节长的字符串。
     */
    private String key;

    /**
     * 初始化向量 (IV)，用于 AES 加密算法。应为 16 字节长的字符串。
     */
    private String initVector;

    /**
     * 加密开关，控制是否对响应体进行加密。值为 true 时启用加密，false 时禁用加密。
     */
    private boolean encryptionEnabled;

    /**
     * 解密开关，控制是否对请求体进行解密。值为 true 时启用解密，false 时禁用解密。
     */
    private boolean decryptionEnabled;
}
